package Action;

import Forms.ArbolInicioForm;
import beans.Nodo;
import hibernate.NodoBD;
import java.util.Calendar;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 *
 * @author Antonio
 */
public class EditarNodoAction extends Action {

    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        //Capturamos el form y el nodo
        ArbolInicioForm inicioForm = (ArbolInicioForm)form;
        Nodo nodo = inicioForm.getNodo();
        //creamos las fecha de nacimiento y defunción.
        //La de defunción es la fecha actual si todavia no se indicó
        Calendar fechaNacimiento = inicioForm.getFechaNacimiento(); 
        Calendar fechaDefuncion = inicioForm.getFechaDefuncion();
        nodo.setFechaNacimiento(fechaNacimiento);
        nodo.setFechaDefuncion(fechaDefuncion);
        NodoBD nodobd = new NodoBD(nodo);
        //Recuperamos el parámetro que indica si hay que añadir fecha de Defunción
        String muerto = request.getParameter("muerto");
        //Recuperamos el nodoActual
        Nodo nodoActualVersionAntigua = (Nodo)request.getSession().getAttribute("nodoActual");
        
        //Lo modificamos con los datos insertados en el Form
        Nodo nodoActual = nodobd.actualizaNodo(muerto,nodoActualVersionAntigua);
        //Volvemos a añadir el nodo en sesion con los cambios realizados
        request.getSession().setAttribute("nodoActual", nodoActual);
        return  mapping.findForward("ok");
    }    
    
}
